package com.ibeeking.found.upms.b.rest.service;

import com.ibeeking.found.common.entity.CurrentUser;
import com.ibeeking.found.upms.service.common.bo.TenantUserRoleBO;
import com.ibeeking.found.upms.service.common.bo.TenantUserRoleInfoBO;
import com.ibeeking.found.upms.service.common.param.RoleUserParam;
import com.ibeeking.found.upms.service.common.param.UserRoleParam;

import java.util.List;

/**
 * @ClassName ITenantUserRoleService
 * @Description
 * @Author ibeeking
 * @Date 2021-01-06 13:31
 **/
public interface ITenantUserRoleService {
    /**
     * 查询用户角色关系通过用户ID
     *
     * @param userId
     * @return
     */
    List<TenantUserRoleBO> queryUserRoleByUserId(Long userId);

    /**
     * 查询用户角色关系通过角色ID
     *
     * @param roleId
     * @return
     */
    List<TenantUserRoleBO> queryUserRoleByRoleId(Long roleId);

    /**
     * 通过用户ID修改用户角色关系
     *
     * @param currentUser
     * @param userRoleParam
     * @return
     */
    Boolean modifyUserRoleByUserId(CurrentUser currentUser, UserRoleParam userRoleParam);

    /**
     * 通过角色ID修改用户角色关系
     *
     * @param currentUser
     * @param roleUserParam
     * @return
     */
    Boolean modifyUserRoleByRoleId(CurrentUser currentUser, RoleUserParam roleUserParam);

    /**
     * 查询通过用户列表
     *
     * @param userIds
     * @return
     */
    List<TenantUserRoleInfoBO> queryUserRoleByUserIds(List<Long> userIds);

    /**
     * 查询通过角色列表
     *
     * @param roleIds
     * @return
     */
    List<TenantUserRoleBO> queryUserRoleByRoleIds(List<Long> roleIds);
}
